package com.train.mgr.modules.biz.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import com.train.common.db.entity.BaseEntity;
import java.io.Serializable;

import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 课程/课时学习总览统计表
 * </p>
 *
 * @author cxg
 * @date 2025-10-11
 */
@Slf4j
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("a_stat_course_overview")
public class StatCourseOverview extends BaseEntity<StatCourseOverview> {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 课程名/课程名
     */
    @TableField("study_name")
    private String studyName;

    /**
     * 学习类型（1-课程，2-课时）
     */
    @TableField("study_type")
    private Integer studyType;

    /**
     * 课程ID
     */
    @TableField("course_id")
    private Long courseId;

    /**
     * 客户ID
     */
    @TableField("customer_id")
    private Long customerId;

    /**
     * 学员人数
     */
    @TableField("trainee_num")
    @ApiModelProperty(value = "学员人数")
    private Integer traineeNum;

    /**
     * 课程/课时完成人数
     */
    @TableField("finish_num")
    @ApiModelProperty(value = "课程/课时完成人数")
    private String finishNum;

    /**
     * 课程/课时完成率
     */
    @TableField("finish_rate")
    @ApiModelProperty(value = "课程/课时完成率")
    private String finishRate;

    /**
     * 课程/课时人均练习次数
     */
    @TableField("per_exercises_num")
    @ApiModelProperty(value = "课程/课时人均练习次数")
    private String perExercisesNum;

    /**
     * 课程/课时人均练习时长（分)
     */
    @TableField("per_exercises_duration")
    @ApiModelProperty(value = "课程/课时人均练习时长（分)")
    private Integer perExercisesDuration;

    /**
     * 课程/课时平均综合分
     */
    @TableField("overall_avg_score")
    @ApiModelProperty(value = "课程/课时平均综合分")
    private BigDecimal overallAvgScore;

    /**
     * 是否删除（0:否，1：是）
     */
    @TableField("is_deleted")
    private Boolean isDeleted;


    @TableField("lesson_id")
    private Long lessonId;
}
